import { getUrlParams,encodeParams } from '@/utils/utils.js';
import appShareFun, {
    closeShare
} from '@/libs/share';

// #ifdef H5
// 微信公众号分享
export function wxPublicShare(shareInfo){
    if (jWeixin) {
        jWeixin.ready(() => {
            // 获取不带参数的url链接
            let url = shareInfo.link.split('#')[0];
            // 解析链接里的参数为对象
            let params = getUrlParams();
            // 判断是否有分享用户ID
            if(shareInfo.shareId){
                params.shareId = shareInfo.shareId;
            }
            // 将参数对象重新解析为url参数
            let urlParams = encodeParams(params);
            shareInfo.link = url + urlParams;
        	// 自定义“分享给朋友”及“分享到QQ”按钮的分享内容
        	jWeixin.updateAppMessageShareData({
        		title: shareInfo.title, // 分享标题
        		desc: shareInfo.desc, // 分享描述
        		link: shareInfo.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        		imgUrl: shareInfo.imgUrl, // 分享图标
        		success: () => {
        			console.log('自定义“分享给朋友”及“分享到QQ”按钮的分享内容成功');
        		},
        	});
        	// 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
        	jWeixin.updateTimelineShareData({
        		title: shareInfo.title, // 分享标题
        		desc: shareInfo.desc, // 分享描述
        		link: shareInfo.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
        		imgUrl: shareInfo.imgUrl, // 分享图标
        		success: () => {
        			console.log('自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容成功');
        		}
        	});
        });
        jWeixin.ready((err) => {
            console.log(err);
          // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
        });
    } else {
        uni.showToast({
            icon: 'none',
            title: "微信SDK未配置,请检查"
        });
        errCallback();
    }
}
// #endif

// #ifdef APP-PLUS
// APP分享
export function appShare(data = {}, callback = () => {}) {
    return appShareFun({
        shareUrl: data.shareUrl,
        shareImg: data.shareImg,
        shareTitle: data.shareTitle,
        shareContent: data.shareContent,
    }, callback);
};
export const closeAppShare = closeShare;
// #endif
